Robot Configuration with Three-Dimensional Lidar

ABSTRACT

A mobile robotic device includes a mobile base and a mast fixed relative to the mobile base. The mast includes a carved-out portion. The mobile robotic device further includes a three-dimensional (3D) lidar sensor mounted in the carved-out portion of the mast and fixed relative to the mast such that a vertical field of view of the 3D lidar sensor is angled downward toward an area in front of the mobile robotic device.

CROSS REFERENCE TO RELATED APPLICATION

The present application is a continuation of U.S. Pat. Application No.16/528,141, filed on Jul. 31, 2019, which claims priority to U.S.Provisional Pat. Application No. 62/853,534 filed on May 28, 2019, theentire contents of which are incorporated herein by reference, as iffully set forth in this description.

BACKGROUND

As technology advances, various types of robotic devices are beingcreated for performing a variety of functions that may assist users.Robotic devices may be used for applications involving materialhandling, transportation, welding, assembly, and dispensing, amongothers. Over time, the manner in which these robotic systems operate isbecoming more intelligent, efficient, and intuitive. As robotic systemsbecome increasingly prevalent in numerous aspects of modern life, it isdesirable for robotic systems to be efficient. Therefore, a demand forefficient robotic systems has helped open up a field of innovation inactuators, movement, sensing techniques, as well as component design andassembly.

SUMMARY

An example mobile robotic device includes a three-dimensional (3D) lidarsensor mounted to a fixed mast of the robot. The position andorientation of the 3D lidar sensor and resulting field of view may beoptimized so that sensor data from the 3D lidar sensor may be used forfront cliff detection, obstacle detection, and robot localization.

In an embodiment, a mobile robotic device is provided. The mobilerobotic device includes a mobile base. The mobile robotic device furtherincludes a mast fixed relative to the mobile base, where the mastincludes a carved-out portion. The mobile robotic device additionallyincludes a 3D lidar sensor mounted in the carved-out portion of the mastand fixed relative to the mast such that a vertical field of view of the3D lidar sensor is angled downward toward an area in front of the mobilerobotic device.

In another embodiment, a method is provided. The method includesreceiving sensor data indicative of an environment of a mobile roboticdevice from a three-dimensional 3D lidar sensor, where the 3D lidarsensor is mounted in a carved-out portion of a mast of the mobilerobotic device and fixed relative to the mast such that a vertical fieldof view of the 3D lidar sensor is angled downward toward an area infront of the mobile robotic device. The method further includescontrolling the mobile robotic device based on the sensor data.

In an additional embodiment, a mast for a mobile robotic device isprovided. The mast includes a carved-out portion. The mast furtherincludes a 3D lidar sensor mounted in the carved-out portion of the mastand fixed relative to the mast such that a vertical field of view of the3D lidar sensor is angled downward in a direction extending outward fromthe carved-out portion of the mast.

In a further embodiment, a non-transitory computer readable medium isprovided which includes programming instructions executable by at leastone processor to cause the at least one processor to perform functions.The functions include receiving sensor data indicative of an environmentof a mobile robotic device from a three-dimensional 3D lidar sensor,where the 3D lidar sensor is mounted in a carved-out portion of a mastof the mobile robotic device and fixed relative to the mast such that avertical field of view of the 3D lidar sensor is angled downward towardan area in front of the mobile robotic device. The functions furtherinclude controlling the mobile robotic device based on the sensor data.

In another embodiment, a system is provided that includes means forreceiving sensor data indicative of an environment of a mobile roboticdevice from a three-dimensional 3D lidar sensor, where the 3D lidarsensor is mounted in a carved-out portion of a mast of the mobilerobotic device and fixed relative to the mast such that a vertical fieldof view of the 3D lidar sensor is angled downward toward an area infront of the mobile robotic device. The system further includes meansfor controlling the mobile robotic device based on the sensor data.

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects, embodiments,and features described above, further aspects, embodiments, and featureswill become apparent by reference to the figures and the followingdetailed description and the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a configuration of a robotic system, in accordancewith example embodiments.

FIG. 2 illustrates a mobile robot, in accordance with exampleembodiments.

FIG. 3 illustrates an exploded view of a mobile robot, in accordancewith example embodiments.

FIG. 4 illustrates a robotic arm, in accordance with exampleembodiments.

FIGS. 5A and 5B illustrate a robot mast with a 3D lidar sensor, inaccordance with example embodiments.

FIGS. 6A, 6B, and 6C illustrate detections by a 3D lidar sensor, inaccordance with example embodiments.

FIGS. 7, 8, and 9 illustrate fields of view of a 3D lidar sensor indifferent mounting orientations, in accordance with example embodiments.

FIG. 10 is a block diagram of a method, in accordance with exampleembodiments.

DETAILED DESCRIPTION

Example methods, devices, and systems are described herein. It should beunderstood that the words “example” and “exemplary” are used herein tomean “serving as an example, instance, or illustration.” Any embodimentor feature described herein as being an “example” or “exemplary” is notnecessarily to be construed as preferred or advantageous over otherembodiments or features unless indicated as such. Other embodiments canbe utilized, and other changes can be made, without departing from thescope of the subject matter presented herein.

Thus, the example embodiments described herein are not meant to belimiting. It will be readily understood that the aspects of the presentdisclosure, as generally described herein, and illustrated in thefigures, can be arranged, substituted, combined, separated, and designedin a wide variety of different configurations.

Throughout this description, the articles “a” or “an” are used tointroduce elements of the example embodiments. Any reference to “a” or“an” refers to “at least one,” and any reference to “the” refers to “theat least one,” unless otherwise specified, or unless the context clearlydictates otherwise. The intent of using the conjunction “or” within adescribed list of at least two terms is to indicate any of the listedterms or any combination of the listed terms.

The use of ordinal numbers such as “first,” “second,” “third” and so onis to distinguish respective elements rather than to denote a particularorder of those elements. For purpose of this description, the terms“multiple” and “a plurality of” refer to “two or more” or “more thanone.”

Further, unless context suggests otherwise, the features illustrated ineach of the figures may be used in combination with one another. Thus,the figures should be generally viewed as component aspects of one ormore overall embodiments, with the understanding that not allillustrated features are necessary for each embodiment. In the figures,similar symbols typically identify similar components, unless contextdictates otherwise. Further, unless otherwise noted, figures are notdrawn to scale and are used for illustrative purposes only. Moreover,the figures are representational only and not all components are shown.For example, additional structural or restraining components might notbe shown.

Additionally, any enumeration of elements, blocks, or steps in thisspecification or the claims is for purposes of clarity. Thus, suchenumeration should not be interpreted to require or imply that theseelements, blocks, or steps adhere to a particular arrangement or arecarried out in a particular order.

I. Overview

A mobile robotic device may use a variety of sensors to collectinformation about an environment to assist the robot in operating in theenvironment. By optimizing the selection of sensors as well as theposition and orientation of selected sensors on the robot, overall costmay be reduced while allowing the robot to achieve desired sensorcoverage in regions of interest. For non-industrial robots as well ascertain classes of industrial robots, it may be particularly beneficialfrom a cost perspective to leverage an individual sensor for multipledisparate purposes.

In some examples, a robot may be equipped with a three-dimensional (3D)lidar sensor. A 3D lidar sensor measures distance to objects in theenvironment by illuminating the objects with laser light and measuringreflected light with one or more sensing elements. Differences in laserreturn times and/or wavelengths may then be used to generate 3Drepresentations of the environment. Some 3D lidar sensors employ arapidly spinning mirror that reflects light from a laser into theenvironment to generate a 3D point cloud of reflections or returns.Consequently, 3D lidar sensors may have a horizontal field of view of360 degrees around a vertical axis of rotation, but only in one fixedangle defining a vertical field of view. In some examples, the verticalfield of view may be slightly greater than 90 degrees (e.g.,approximately 95 degrees). In other examples, the vertical field of viewmay be significantly greater than 90 degrees, equal to 90 degrees, orless than 90 degrees. In order to maximally benefit from the availablefield of view of a 3D lidar sensor, the 3D lidar sensor may be mountedon a robot at a carefully chosen position and orientation.

In some examples described herein, a 3D lidar sensor may be mounted in acarved-out portion of a mast of a robotic device. The mast may be fixedrelative to a mobile base of the robot. The mast may be positionedbetween a rotatable perception housing and a rotatable arm joint as partof a stacked tower mounted near the front of the mobile base. The 3Dlidar sensor may be fixed at an orientation that causes the verticalfield of view of the 3D lidar sensor to angle downwards towards an areain front of the robot. In some examples, the 3D lidar may be mountedsuch that its vertical axis tilts forward. The position and orientationof a 3D lidar sensor may be optimized to allow the robot to leveragedepth data from the 3D lidar sensor for multiple purposes, includingfront cliff detection, obstacle detection, and robot localization.

In regards to front cliff detection, the 3D lidar sensor may be angledso that its vertical field of view includes the ground surface directlyin front of the robot (e.g., touching or with a few centimeters of afront bumper of the robot). Sensor data from the 3D lidar sensor maytherefore be used to detect unexpected changes in altitude in a groundsurface in front of the robot, which may indicate a cliff that should beavoided by the robot. Inclusion of points on the ground surface directlyin front of the robot covers the safety case where the robot is turnedon or activated while positioned directly in front of a cliff in a newenvironment. The vertical field of view may additionally include pointson the ground surface at further distances from the robot to allow the3D lidar sensor to detect cliffs in the distance as well. A maximumvelocity for the robot may be set based on a distance at which the 3Dlidar sensor can reliably detect cliffs in front of the robot. In someexamples, one or more other sensors (e.g., cameras) from the robot’sperception suite may provide sensor data that may be used to aid incliff detection in addition to the 3D lidar sensor.

In regards to obstacle detection, the vertical field of view of the 3Dlidar sensor may sweep up from one extreme direction that points at theground directly in front of the robot to a second extreme direction thatextends above a height parallel to the top of a perception housing ofthe robot (e.g., at a distance of two meters in front of the robot).More specifically, in some examples, the vertical field of view mayextend from a first angle that is between 10 and 20 degrees above ahorizontal vector pointing in front of the mobile robotic device to asecond angle that is between 75 and 85 degrees below the horizontalvector. The 3D lidar sensor may therefore be effective for detectingobstacles in front of the robot within the height range of the robotitself.

In regards to robot localization, by angling the vertical field of viewof the 3D lidar sensor downward toward an area in front of the robot,the 3D lidar sensor will also capture sensor data indicative of surfacesbehind and above the robot. Moreover, the shape of the carved-outportion of the mast may prevent the mast from obstructing too much ofthe upper hemisphere behind the robot from the 3D lidar sensor. Depthinformation about the upper hemisphere of the robot’s environment may beused to help determine the robot’s location in the environment. Theupper hemisphere may contain mostly static structures (e.g., portions ofthe ceiling and/or walls) which provide good reference points for robotlocalization. In some examples, the robot may maintain a voxelrepresentation of occupied voxels in the environment. Localization basedon sensor data from the 3D lidar sensor may then involve voxel matchingbetween detections and the stored voxel representation.

By choosing a position and orientation for a 3D lidar sensor thatoptimizes coverage of certain areas around a robot, compromises maysimilarly be made in accepting blind spots. For instance, by angling the3D lidar sensor downward toward an area in front of the robot, thevertical field of view of the 3D lidar sensor may only extend slightlyabove horizontal. As a result, the 3D lidar sensor may not be able todetect an area in front and substantially above the robot. In someexamples, this compromise may be acceptable because the robot may beunlikely to encounter obstacles hovering above the robot. If, forinstance, an operator is standing in front of the robot, the 3D lidarwill be sufficient to detect a portion of the operator’s body even ifthe operator is not fully in view of the 3D lidar sensor. Furthermore,in some examples, a separate sensor such as a camera located in aperception housing of the robot may provide coverage of the blind spotabove the field of view of the 3D lidar sensor in front of the robot. Inaddition, while the upper hemisphere in front of the robot may not bedetected by the 3D lidar sensor, the upper hemisphere behind the robotmay be equally sufficient for robot localization.

An additional blind spot that may result from angling the vertical fieldof view of the 3D lidar sensor downward toward an area in front of therobot is an area behind the robot at ground level. In some examples, acompromise solution may involve using a group of one-dimensional (1D)time-of-flight (ToF) sensors positioned on a rear side of the mobilebase of the robot to detect this area. While not as precise as the 3Dlidar sensor, these 1D ToF sensors may provide sufficient depth dataabout the area behind the robot. The robot generally may require moredetailed data about the area in front where the robot is more likely tooperate by, for example, picking up and manipulating objects.

In other examples, an additional 3D lidar sensor may be mounted on theback side of the mast to detect obstacles behind the robot. Theadditional 3D lidar sensor may be mounted in a separate or the samecarved-out portion of the mast as the front 3D lidar sensor. In variousexamples, the additional 3D lidar sensor may be tilted upwards,downwards, or fixed in a vertical orientation. In further examples, anadditional 3D lidar may instead be mounted on the mobile base (e.g.,near the rear end of the mobile) to detect obstacles behind the robot.In yet other examples, one or more different types of sensors may beused to detect obstacles behind the robot as well or instead.

II. Example Robotic Systems

FIG. 1 illustrates an example configuration of a robotic system that maybe used in connection with the implementations described herein. Roboticsystem 100 may be configured to operate autonomously, semi-autonomously,or using directions provided by user(s). Robotic system 100 may beimplemented in various forms, such as a robotic arm, industrial robot,or some other arrangement. Some example implementations involve arobotic system 100 engineered to be low cost at scale and designed tosupport a variety of tasks. Robotic system 100 may be designed to becapable of operating around people. Robotic system 100 may also beoptimized for machine learning. Throughout this description, roboticsystem 100 may also be referred to as a robot, robotic device, or mobilerobot, among other designations.

As shown in FIG. 1 , robotic system 100 may include processor(s) 102,data storage 104, and controller(s) 108, which together may be part ofcontrol system 118. Robotic system 100 may also include sensor(s) 112,power source(s) 114, mechanical components 110, and electricalcomponents 116. Nonetheless, robotic system 100 is shown forillustrative purposes, and may include more or fewer components. Thevarious components of robotic system 100 may be connected in any manner,including wired or wireless connections. Further, in some examples,components of robotic system 100 may be distributed among multiplephysical entities rather than a single physical entity. Other exampleillustrations of robotic system 100 may exist as well.

Processor(s) 102 may operate as one or more general-purpose hardwareprocessors or special purpose hardware processors (e.g., digital signalprocessors, application specific integrated circuits, etc.).Processor(s) 102 may be configured to execute computer-readable programinstructions 106, and manipulate data 107, both of which are stored indata storage 104. Processor(s) 102 may also directly or indirectlyinteract with other components of robotic system 100, such as sensor(s)112, power source(s) 114, mechanical components 110, or electricalcomponents 116.

Data storage 104 may be one or more types of hardware memory. Forexample, data storage 104 may include or take the form of one or morecomputer-readable storage media that can be read or accessed byprocessor(s) 102. The one or more computer-readable storage media caninclude volatile or non-volatile storage components, such as optical,magnetic, organic, or another type of memory or storage, which can beintegrated in whole or in part with processor(s) 102. In someimplementations, data storage 104 can be a single physical device. Inother implementations, data storage 104 can be implemented using two ormore physical devices, which may communicate with one another via wiredor wireless communication. As noted previously, data storage 104 mayinclude the computer-readable program instructions 106 and data 107.Data 107 may be any type of data, such as configuration data, sensordata, or diagnostic data, among other possibilities.

Controller 108 may include one or more electrical circuits, units ofdigital logic, computer chips, or microprocessors that are configured to(perhaps among other tasks), interface between any combination ofmechanical components 110, sensor(s) 112, power source(s) 114,electrical components 116, control system 118, or a user of roboticsystem 100. In some implementations, controller 108 may be apurpose-built embedded device for performing specific operations withone or more subsystems of the robotic system 100.

Control system 118 may monitor and physically change the operatingconditions of robotic system 100. In doing so, control system 118 mayserve as a link between portions of robotic system 100, such as betweenmechanical components 110 or electrical components 116. In someinstances, control system 118 may serve as an interface between roboticsystem 100 and another computing device. Further, control system 118 mayserve as an interface between robotic system 100 and a user. In someinstances, control system 118 may include various components forcommunicating with robotic system 100, including a joystick, buttons, orports, etc. The example interfaces and communications noted above may beimplemented via a wired or wireless connection, or both. Control system118 may perform other operations for robotic system 100 as well.

During operation, control system 118 may communicate with other systemsof robotic system 100 via wired or wireless connections, and may furtherbe configured to communicate with one or more users of the robot. As onepossible illustration, control system 118 may receive an input (e.g.,from a user or from another robot) indicating an instruction to performa requested task, such as to pick up and move an object from onelocation to another location. Based on this input, control system 118may perform operations to cause the robotic system 100 to make asequence of movements to perform the requested task. As anotherillustration, a control system may receive an input indicating aninstruction to move to a requested location. In response, control system118 (perhaps with the assistance of other components or systems) maydetermine a direction and speed to move robotic system 100 through anenvironment en route to the requested location.

Operations of control system 118 may be carried out by processor(s) 102.Alternatively, these operations may be carried out by controller(s) 108,or a combination of processor(s) 102 and controller(s) 108. In someimplementations, control system 118 may partially or wholly reside on adevice other than robotic system 100, and therefore may at least in partcontrol robotic system 100 remotely.

Mechanical components 110 represent hardware of robotic system 100 thatmay enable robotic system 100 to perform physical operations. As a fewexamples, robotic system 100 may include one or more physical members,such as an arm, an end effector, a head, a neck, a torso, a base, andwheels. The physical members or other parts of robotic system 100 mayfurther include actuators arranged to move the physical members inrelation to one another. Robotic system 100 may also include one or morestructured bodies for housing control system 118 or other components,and may further include other types of mechanical components. Theparticular mechanical components 110 used in a given robot may varybased on the design of the robot, and may also be based on theoperations or tasks the robot may be configured to perform.

In some examples, mechanical components 110 may include one or moreremovable components. Robotic system 100 may be configured to add orremove such removable components, which may involve assistance from auser or another robot. For example, robotic system 100 may be configuredwith removable end effectors or digits that can be replaced or changedas needed or desired. In some implementations, robotic system 100 mayinclude one or more removable or replaceable battery units, controlsystems, power systems, bumpers, or sensors. Other types of removablecomponents may be included within some implementations.

Robotic system 100 may include sensor(s) 112 arranged to sense aspectsof robotic system 100. Sensor(s) 112 may include one or more forcesensors, torque sensors, velocity sensors, acceleration sensors,position sensors, proximity sensors, motion sensors, location sensors,load sensors, temperature sensors, touch sensors, depth sensors,ultrasonic range sensors, infrared sensors, object sensors, or cameras,among other possibilities. Within some examples, robotic system 100 maybe configured to receive sensor data from sensors that are physicallyseparated from the robot (e.g., sensors that are positioned on otherrobots or located within the environment in which the robot isoperating).

Sensor(s) 112 may provide sensor data to processor(s) 102 (perhaps byway of data 107) to allow for interaction of robotic system 100 with itsenvironment, as well as monitoring of the operation of robotic system100. The sensor data may be used in evaluation of various factors foractivation, movement, and deactivation of mechanical components 110 andelectrical components 116 by control system 118. For example, sensor(s)112 may capture data corresponding to the terrain of the environment orlocation of nearby objects, which may assist with environmentrecognition and navigation.

In some examples, sensor(s) 112 may include RADAR (e.g., for long-rangeobject detection, distance determination, or speed determination), LIDAR(e.g., for short-range object detection, distance determination, orspeed determination), SONAR (e.g., for underwater object detection,distance determination, or speed determination), VICON® (e.g., formotion capture), one or more cameras (e.g., stereoscopic cameras for 3Dvision), a global positioning system (GPS) transceiver, or other sensorsfor capturing information of the environment in which robotic system 100is operating. Sensor(s) 112 may monitor the environment in real time,and detect obstacles, elements of the terrain, weather conditions,temperature, or other aspects of the environment. In another example,sensor(s) 112 may capture data corresponding to one or morecharacteristics of a target or identified object, such as a size, shape,profile, structure, or orientation of the object.

Further, robotic system 100 may include sensor(s) 112 configured toreceive information indicative of the state of robotic system 100,including sensor(s) 112 that may monitor the state of the variouscomponents of robotic system 100. Sensor(s) 112 may measure activity ofsystems of robotic system 100 and receive information based on theoperation of the various features of robotic system 100, such as theoperation of an extendable arm, an end effector, or other mechanical orelectrical features of robotic system 100. The data provided bysensor(s) 112 may enable control system 118 to determine errors inoperation as well as monitor overall operation of components of roboticsystem 100.

As an example, robotic system 100 may use force/torque sensors tomeasure load on various components of robotic system 100. In someimplementations, robotic system 100 may include one or more force/torquesensors on an arm or end effector to measure the load on the actuatorsthat move one or more members of the arm or end effector. In someexamples, the robotic system 100 may include a force/torque sensor at ornear the wrist or end effector, but not at or near other joints of arobotic arm. In further examples, robotic system 100 may use one or moreposition sensors to sense the position of the actuators of the roboticsystem. For instance, such position sensors may sense states ofextension, retraction, positioning, or rotation of the actuators on anarm or end effector.

As another example, sensor(s) 112 may include one or more velocity oracceleration sensors. For instance, sensor(s) 112 may include aninertial measurement unit (IMU). The IMU may sense velocity andacceleration in the world frame, with respect to the gravity vector. Thevelocity and acceleration sensed by the IMU may then be translated tothat of robotic system 100 based on the location of the IMU in roboticsystem 100 and the kinematics of robotic system 100.

Robotic system 100 may include other types of sensors not explicitlydiscussed herein. Additionally or alternatively, the robotic system mayuse particular sensors for purposes not enumerated herein.

Robotic system 100 may also include one or more power source(s) 114configured to supply power to various components of robotic system 100.Among other possible power systems, robotic system 100 may include ahydraulic system, electrical system, batteries, or other types of powersystems. As an example illustration, robotic system 100 may include oneor more batteries configured to provide charge to components of roboticsystem 100. Some of mechanical components 110 or electrical components116 may each connect to a different power source, may be powered by thesame power source, or be powered by multiple power sources.

Any type of power source may be used to power robotic system 100, suchas electrical power or a gasoline engine. Additionally or alternatively,robotic system 100 may include a hydraulic system configured to providepower to mechanical components 110 using fluid power. Components ofrobotic system 100 may operate based on hydraulic fluid beingtransmitted throughout the hydraulic system to various hydraulic motorsand hydraulic cylinders, for example. The hydraulic system may transferhydraulic power by way of pressurized hydraulic fluid through tubes,flexible hoses, or other links between components of robotic system 100.Power source(s) 114 may charge using various types of charging, such aswired connections to an outside power source, wireless charging,combustion, or other examples.

Electrical components 116 may include various mechanisms capable ofprocessing, transferring, or providing electrical charge or electricsignals. Among possible examples, electrical components 116 may includeelectrical wires, circuitry, or wireless communication transmitters andreceivers to enable operations of robotic system 100. Electricalcomponents 116 may interwork with mechanical components 110 to enablerobotic system 100 to perform various operations. Electrical components116 may be configured to provide power from power source(s) 114 to thevarious mechanical components 110, for example. Further, robotic system100 may include electric motors. Other examples of electrical components116 may exist as well.

Robotic system 100 may include a body, which may connect to or houseappendages and components of the robotic system. As such, the structureof the body may vary within examples and may further depend onparticular operations that a given robot may have been designed toperform. For example, a robot developed to carry heavy loads may have awide body that enables placement of the load. Similarly, a robotdesigned to operate in tight spaces may have a relatively tall, narrowbody. Further, the body or the other components may be developed usingvarious types of materials, such as metals or plastics. Within otherexamples, a robot may have a body with a different structure or made ofvarious types of materials.

The body or the other components may include or carry sensor(s) 112.These sensors may be positioned in various locations on the roboticsystem 100, such as on a body, a head, a neck, a base, a torso, an arm,or an end effector, among other examples.

Robotic system 100 may be configured to carry a load, such as a type ofcargo that is to be transported. In some examples, the load may beplaced by the robotic system 100 into a bin or other container attachedto the robotic system 100. The load may also represent externalbatteries or other types of power sources (e.g., solar panels) that therobotic system 100 may utilize. Carrying the load represents one exampleuse for which the robotic system 100 may be configured, but the roboticsystem 100 may be configured to perform other operations as well.

As noted above, robotic system 100 may include various types ofappendages, wheels, end effectors, gripping devices and so on. In someexamples, robotic system 100 may include a mobile base with wheels,treads, or some other form of locomotion. Additionally, robotic system100 may include a robotic arm or some other form of robotic manipulator.In the case of a mobile base, the base may be considered as one ofmechanical components 110 and may include wheels, powered by one or moreof actuators, which allow for mobility of a robotic arm in addition tothe rest of the body.

FIG. 2 illustrates a mobile robot, in accordance with exampleembodiments. FIG. 3 illustrates an exploded view of the mobile robot, inaccordance with example embodiments. More specifically, a robot 200 mayinclude a mobile base 202, a midsection 204, an arm 206, an end-of-armsystem (EOAS) 208, a mast 210, a perception housing 212, and aperception suite 214. The robot 200 may also include a compute box 216stored within mobile base 202.

The mobile base 202 includes two drive wheels positioned at a front endof the robot 200 in order to provide locomotion to robot 200. The mobilebase 202 also includes additional casters (not shown) to facilitatemotion of the mobile base 202 over a ground surface. The mobile base 202may have a modular architecture that allows compute box 216 to be easilyremoved. Compute box 216 may serve as a removable control system forrobot 200 (rather than a mechanically integrated control system). Afterremoving external shells, the compute box 216 can be easily removedand/or replaced. The mobile base 202 may also be designed to allow foradditional modularity. For example, the mobile base 202 may also bedesigned so that a power system, a battery, and/or external bumpers canall be easily removed and/or replaced.

The midsection 204 may be attached to the mobile base 202 at a front endof the mobile base 202. The midsection 204 includes a mounting columnwhich is fixed to the mobile base 202. The midsection 204 additionallyincludes a rotational joint for arm 206. More specifically, themidsection 204 includes the first two degrees of freedom for arm 206 (ashoulder yaw J0 joint and a shoulder pitch J1 joint). The mountingcolumn and the shoulder yaw J0 joint may form a portion of a stackedtower at the front of mobile base 202. The mounting column and theshoulder yaw J0 joint may be coaxial. The length of the mounting columnof midsection 204 may be chosen to provide the arm 206 with sufficientheight to perform manipulation tasks at commonly encountered heightlevels (e.g., coffee table top and counter top levels). The length ofthe mounting column of midsection 204 may also allow the shoulder pitchJ1 joint to rotate the arm 206 over the mobile base 202 withoutcontacting the mobile base 202.

The arm 206 may be a 7DOF robotic arm when connected to the midsection204. As noted, the first two DOFs of the arm 206 may be included in themidsection 204. The remaining five DOFs may be included in a standalonesection of the arm 206 as illustrated in FIGS. 2 and 3 . The arm 206 maybe made up of plastic monolithic link structures. Inside the arm 206 maybe housed standalone actuator modules, local motor drivers, and thrubore cabling.

The EOAS 208 may be an end effector at the end of arm 206. EOAS 208 mayallow the robot 200 to manipulate objects in the environment. As shownin FIGS. 2 and 3 , EOAS 208 may be a gripper, such as an underactuatedpinch gripper. The gripper may include one or more contact sensors suchas force/torque sensors and/or non-contact sensors such as one or morecameras to facilitate object detection and gripper control. EOAS 208 mayalso be a different type of gripper such as a suction gripper or adifferent type of tool such as a drill or a brush. EOAS 208 may also beswappable or include swappable components such as gripper digits.

The mast 210 may be a relatively long, narrow component between theshoulder yaw J0 joint for arm 206 and perception housing 212. The mast210 may be part of the stacked tower at the front of mobile base 202.The mast 210 may be fixed relative to the mobile base 202. The mast 210may be coaxial with the midsection 204. The length of the mast 210 mayfacilitate perception by perception suite 214 of objects beingmanipulated by EOAS 208. The mast 210 may have a length such that whenthe shoulder pitch J1 joint is rotated vertical up, a topmost point of abicep of the arm 206 is approximately aligned with a top of the mast210. The length of the mast 210 may then be sufficient to prevent acollision between the perception housing 212 and the arm 206 when theshoulder pitch J1 joint is rotated vertical up.

As shown in FIGS. 2 and 3 , the mast 210 may include a 3D lidar sensorconfigured to collect depth information about the environment. The 3Dlidar sensor may be coupled to a carved-out portion of the mast 210 andfixed at a downward angle. The lidar position may be optimized forlocalization, navigation, and for front cliff detection.

The perception housing 212 may include at least one sensor making upperception suite 214. The perception housing 212 may be connected to apan/tilt control to allow for reorienting of the perception housing 212(e.g., to view objects being manipulated by EOAS 208). The perceptionhousing 212 may be a part of the stacked tower fixed to the mobile base202. A rear portion of the perception housing 212 may be coaxial withthe mast 210.

The perception suite 214 may include a suite of sensors configured tocollect sensor data representative of the environment of the robot 200.The perception suite 214 may include an infrared(IR)-assisted stereodepth sensor. The perception suite 214 may additionally include awide-angled red-green-blue (RGB) camera for human-robot interaction andcontext information. The perception suite 214 may additionally include ahigh resolution RGB camera for object classification. A face light ringsurrounding the perception suite 214 may also be included for improvedhuman-robot interaction and scene illumination.

FIG. 4 illustrates a robotic arm, in accordance with exampleembodiments. The robotic arm includes 7 DOFs: a shoulder yaw J0 joint, ashoulder pitch J1 joint, a bicep roll J2 joint, an elbow pitch J3 joint,a forearm roll J4 joint, a wrist pitch J5 joint, and wrist roll J6joint. Each of the joints may be coupled to one or more actuators. Theactuators coupled to the joints may be operable to cause movement oflinks down the kinematic chain (as well as any end effector attached tothe robot arm).

The shoulder yaw J0 joint allows the robot arm to rotate toward thefront and toward the back of the robot. One beneficial use of thismotion is to allow the robot to pick up an object in front of the robotand quickly place the object on the rear section of the robot (as wellas the reverse motion). Another beneficial use of this motion is toquickly move the robot arm from a stowed configuration behind the robotto an active position in front of the robot (as well as the reversemotion).

The shoulder pitch J1 joint allows the robot to lift the robot arm(e.g., so that the bicep is up to perception suite level on the robot)and to lower the robot arm (e.g., so that the bicep is just above themobile base). This motion is beneficial to allow the robot toefficiently perform manipulation operations (e.g., top grasps and sidegrasps) at different target height levels in the environment. Forinstance, the shoulder pitch J1 joint may be rotated to a vertical upposition to allow the robot to easily manipulate objects on a table inthe environment. The shoulder pitch J1 joint may be rotated to avertical down position to allow the robot to easily manipulate objectson a ground surface in the environment.

The bicep roll J2 joint allows the robot to rotate the bicep to move theelbow and forearm relative to the bicep. This motion may be particularlybeneficial for facilitating a clear view of the EOAS by the robot’sperception suite. By rotating the bicep roll J2 joint, the robot maykick out the elbow and forearm to improve line of sight to an objectheld in a gripper of the robot.

Moving down the kinematic chain, alternating pitch and roll joints (ashoulder pitch J1 joint, a bicep roll J2 joint, an elbow pitch J3 joint,a forearm roll J4 joint, a wrist pitch J5 joint, and wrist roll J6joint) are provided to improve the manipulability of the robotic arm.The axes of the wrist pitch J5 joint, the wrist roll J6 j oint, and theforearm roll J4 joint are intersecting for reduced arm motion toreorient objects. The wrist roll J6 point is provided instead of twopitch joints in the wrist in order to improve object rotation.

In some examples, a robotic arm such as the one illustrated in FIG. 4may be capable of operating in a teach mode. In particular, teach modemay be an operating mode of the robotic arm that allows a user tophysically interact with and guide robotic arm towards carrying out andrecording various movements. In a teaching mode, an external force isapplied (e.g., by the user) to the robotic arm based on a teaching inputthat is intended to teach the robot regarding how to carry out aspecific task. The robotic arm may thus obtain data regarding how tocarry out the specific task based on instructions and guidance from theuser. Such data may relate to a plurality of configurations ofmechanical components, joint position data, velocity data, accelerationdata, torque data, force data, and power data, among otherpossibilities.

During teach mode the user may grasp onto the EOAS or wrist in someexamples or onto any part of robotic arm in other examples, and providean external force by physically moving robotic arm. In particular, theuser may guide the robotic arm towards grasping onto an object and thenmoving the object from a first location to a second location. As theuser guides the robotic arm during teach mode, the robot may obtain andrecord data related to the movement such that the robotic arm may beconfigured to independently carry out the task at a future time duringindependent operation (e.g., when the robotic arm operates independentlyoutside of teach mode). In some examples, external forces may also beapplied by other entities in the physical workspace such as by otherobjects, machines, or robotic systems, among other possibilities.

FIGS. 5A and 5B illustrate a robot mast with a 3D lidar sensor, inaccordance with example embodiments. More specifically, FIG. 5Aillustrates a robot 500 that may be the same or similar to the robotillustrated and described with respect to FIGS. 2 and 3 . The robot 500includes a mast 502. The mast 502 includes a carved-out portion 504. A3D lidar sensor 506 is mounted in the carved-out portion 504 byattaching the 3D lidar sensor 506 below mounting point 508.

In some examples, the 3D lidar sensor 506 may be configured to have a360 degree horizontal field of view at a fixed vertical angle. In someexamples, the fixed vertical angle may be greater than 90 degrees. Inother examples, the fixed vertical angle may be equal to or less than 90degrees. The horizontal field of view may be defined around a verticalaxis of rotation of one or more mirrors that reflect light projected byone or more lasers into the environment of the robot 500 to collectdepth measurements. In reference to FIG. 5A, the vertical axis may runthrough the center of the 3D lidar sensor 506 and through the mountingpoint 508. As illustrated in FIG. 5A, the 3D lidar sensor 506 may betilted forward. Accordingly, the vertical field of view of the 3D lidarsensor 506 may be angled downward toward an area in front of the robot500. As an example, the vertical axis of the 3D lidar sensor 506 may betilted forward 16 degrees from vertical toward the front of the robot.

The carved-out portion 504 may allow the 3D lidar sensor 506 to bemounted under mounting point 508 so that the 3D lidar sensor 506 iscontained within the carved-out portion 504 when viewed from the topdown. The carved-out portion 504 may be positioned between twosubstantially cylindrical portions of the mast 502. Additionally, atleast a portion of the 3D lidar sensor may be contained between thesubstantially cylindrical portions without sticking out. Advantageously,by mounting the 3D lidar sensor 506 within carved-out portion 504, the3D lidar sensor may be prevented from obscuring other sensors in theperception suite of the robot 500. Additionally, the carved-out portion504 may prevent the mast 502 from obscuring an excessive amount of thehorizontal field of view of the 3D lidar sensor 506. In some examples,at least 270 degrees of the horizontal field of view of the 3D lidarsensor is not obscured by the mast 502 based on the shape of thecarved-out portion 504. In other examples, the mast 502 and/or thecarved-out portion 504 may have different shapes or dimensions.

In reference to FIG. 5B, the mast 502 of robot 500 may include a backingcomponent 510 to which the 3D lidar sensor 506 is mounted under mountingpoint 508. The backing component 510 may house wiring to connect the 3Dlidar sensor 506 to the perception housing and/or midsection of therobot 500. The backing component 510 may also house other components,such as a printed circuit board. The mast 502 may additionally includetwo symmetric housing components 512 and 514. The two symmetric housingcomponents 512 and 514 may attach to either side of the backingcomponent 510 such that the 3D lidar sensor 506 is external to a volumeencompassed by the backing component 510 and the two symmetric housingcomponents 512 and 514. The backing component 510 and/or the twosymmetric housing components 512 and 514 may be injection molded.

In some examples, the mast 502 illustrated in FIGS. 5A and 5B may bepart of a stacked tower positioned at a front end of a mobile base ofthe robot 500. Above the mast 502, the stacked tower may include aperception housing that can pan and tilt. Below the mast 502, thestacked tower may include a rotational joint of a robotic arm. Therotational joint of the robotic arm may be configured to rotate therobotic arm without rotating the mast. Accordingly, the mast may remainfixed relative to the mobile base. The stacked tower may be fixed to themobile base so that the 3D lidar sensor 506 is oriented to detect anarea near ground level in front of the mobile base. The mobile base ofrobot may additionally include a group of 1D ToF sensors directed towardan area near ground level behind the mobile base. Taken together, thissensor arrangement may provide an appropriate compromise for certainapplications, particularly where more precise data indicative of thearea in front of the robot is needed than for the area behind the robot.

FIGS. 6A, 6B, and 6C illustrate detections by a 3D lidar sensor, inaccordance with example embodiments. More specifically, FIG. 6Aillustrates a zoomed-out angular view, FIG. 6B illustrates a top-downview, and FIG. 6C illustrates a zoomed-in angular view of a point cloudof detections by a 3D lidar sensor on a robot 600 in an environment 602.The robot 600 may be the same or similar as illustrated in FIGS. 2, 3,and/or 5A and 5B.

For purposes of illustration, the individual point detections aredivided into three categories. The smaller unfilled squares representpoint detections on a ground surface of the environment 602. The largerunfilled squares represent point detections on objects in theenvironment 602. The filled squares represent point detections on anupper hemisphere of the environment 602 (e.g., the ceiling and/orwalls).

Regarding point detections on the ground surface, as illustrated forinstance by FIG. 6B, based on the position and orientation of the 3Dlidar sensor on the robot 600, the point detections are closest to therobot 600 directly in front of the robot 600. On the sides of the robot600, the point detections are further away from the robot 600.Furthermore, the 3D lidar sensor is unable to detect the ground surfacedirectly behind the robot 600. These tradeoffs allow for precise frontcliff detection, which may be a priority assuming the mobile base of therobot 600 typically navigates in a forward direction. In some examples,the ground surface may not be detected for a minimal distance in frontof the robot, as illustrated for instance by FIG. 6C. This distance maybe kept small enough to prevent any risk of the mobile base of the robot600 travelling over a cliff given the positioning of front wheels on therobot 600. There may be less need to detect cliffs behind the robot 600.Accordingly, a less costly alternative cliff detection solution such asdownward-facing 1D ToF sensors may be used on the robot 600 to detectcliffs behind the robot 600.

Regarding point detections on objects, as illustrated for instance byFIG. 6B, the positioning of the 3D lidar sensor may allow the robot 600to detect at least some portion of obstacles located in front and to thesides of the robot 600. As illustrated for instance by FIG. 6A, thevertical field of view of the 3D lidar sensor may only allow the robot600 to detect points on obstacles up to a height approximately parallelto a perception housing of the robot 600. This tradeoff may beacceptable because most objects are unlikely to float above the robotwithout also having portions closer to ground level that will bedetected by the 3D lidar sensor on robot 600. Furthermore, one or moreother sensors (e.g., cameras) in the perception suite of the robot mayalso provide coverage of this area. In addition, there may be less needto detect floating objects that are outside a safety critical path thatthe robot may traverse. Similarly, detecting objects behind the robot600 may also be less critical. Accordingly, a less costly alternativeobject detection solution such as horizontally arranged 1D ToF sensorsalong the rear side of the robot 600 may be used to detect obstaclesbehind the robot 600.

Regarding point detections on the upper hemisphere, as illustrated forinstance by FIG. 6A, points on the ceilings and/or walls behind and tothe sides of the robot 600 may be detected by the 3D lidar sensor. Thissensor data may be used to help localize the robot 600 in environment602. For example, the localization process may involve aligning detectedpoints with a voxel grid representation of surfaces in the environment602. These surfaces in the upper hemisphere may be particularlyappropriate for robot localization because the surfaces are largelystatic and unlikely to change often over time. Additionally, portions ofthe upper hemisphere behind and to the sides of the robot 600 may beequally effective as points of the upper hemisphere in front of therobot 600 which may not be detected based on the position andorientation of the 3D lidar sensor on the robot 600.

It should be understood that the point clouds represented in FIGS. 6A,6B, and 6C are for purposes of illustration. In practice, the robot 600may include additional sensors that provide additional point cloud dataor other types of sensor data. Additionally, in alternative examples,different arrangements of a 3D lidar sensor on a robot may producedifferent point cloud representations of an environment.

FIGS. 7, 8, and 9 illustrate fields of view of a 3D lidar sensor indifferent mounting orientations, in accordance with example embodiments.More specifically, FIGS. 7, 8, and 9 each represent two respective blindspots resulting from a different mounting angle of a 3D lidar sensor ona robotic device. For each figure, the vertical field of view of the 3Dlidar sensor covers the area between the two blind spots in a directiondirectly in front of the robot. For purposes of illustration, thevertical field of view of the 3D lidar sensor is represented as beingslightly greater than 90 degrees in each figure. In alternativeexamples, a 3D lidar sensor with a different vertical field of view maybe used instead.

FIG. 7 represents a first mounting position of a 3D lidar sensor on arobotic device in which the 3D lidar sensor is angled upwards towardsthe front of the robot. More specifically, robot 700 may include 3Dlidar sensor 702 with a vertical axis tilted backwards from vertical(e.g., by an angle of 18 degrees). A first blind spot 704 in front ofrobot 700 may result from this mounting angle of 3D lidar sensor 702.Additionally, a second blind spot 706 above and behind the robot 700 mayalso result from this mounting angle of 3D lidar sensor 702.

In some applications, the blind spot 704 may not allow the 3D lidarsensor 702 to be used for front cliff detection because too large anarea of the ground surface in front of robot 700 is not detectable bythe 3D lidar sensor 702. At the mounting angle illustrated in FIG. 7 ,the 3D lidar sensor 702 may be effective for detecting an area in frontand substantially above the robot 700. Additionally, this mounting anglemay be effective for robot localization using a portion of the upperhemisphere in front of the robot 700 based on the position of the blindspot 706. In some applications, the mounting angle illustrated in FIG. 7may be a preferred mounting angle. However, it may not be critical forthe 3D lidar sensor 702 to detect the area in front and substantiallyabove the robot 700 in some applications.

FIG. 8 represents a second mounting orientation of a 3D lidar sensor ona robotic device in which the 3D lidar sensor is vertical. Morespecifically, robot 800 may include 3D lidar sensor 802 with a verticalaxis that is perpendicular to the ground. A first blind spot 804 infront of robot 800 may result from this mounting angle of 3D lidarsensor 802. Additionally, a second blind spot 806 above the robot 800may also result from this mounting angle of 3D lidar sensor 802.Although the 3D lidar sensor 802 is mounted vertically on robot 800, thevertical field of view of the 3D lidar sensor 802 may be angled downtoward an area in front of the robot based on the internal configurationof the 3D lidar sensor 802.

In some applications, the mounting angle of the 3D lidar sensor 802illustrated in FIG. 8 may be the preferred mounting angle. However,although smaller than blind spot 704, the blind spot 804 may not allowthe 3D lidar sensor 802 to be used for front cliff detection because toolarge an area of the ground surface in front of robot 800 is still notdetectable by the 3D lidar sensor 802. In addition, the blind spot 806may not allow the 3D lidar sensor 802 to be used effectively for robotlocalization because not enough of the upper hemisphere of theenvironment is detected by the 3D lidar sensor 802. At the mountingangle illustrated in FIG. 8 , less of the upper hemisphere may bedetected by 3D lidar sensor 802 than by 3D lidar sensor 702 in FIG. 7 .

FIG. 9 represents a third mounting orientation of a 3D lidar sensor on arobotic device in which the 3D lidar sensor is angled downwards towardsthe front of the robot. More specifically, robot 900 may include 3Dlidar sensor 902 with a vertical axis tilted forward from vertical(e.g., by an angle of 16 degrees). A first blind spot 904 in front ofrobot 900 may result from this mounting angle of 3D lidar sensor 902.Additionally, a second blind spot 906 above and in front of the robot900 may also result from this mounting angle of 3D lidar sensor 902.

The blind spot 904 may be sufficiently small (or in some cases,non-existent) to allow the 3D lidar sensor 902 to be used effectivelyfor front cliff detection. In addition, the blind spot 906 may notprevent the 3D lidar sensor 902 from being used effectively for robotlocalization because enough of the upper hemisphere of the environmentbehind and above the robot 900 is detected by the 3D lidar sensor 902.At the mounting angle illustrated in FIG. 9 , the upper extreme vectorof the vertical field of view of the 3D lidar sensor 902 may angleslightly upwards from horizontal. For instance, the vector may cross aheight parallel to the top of the robot’s perception housing at adistance of two meters from the robot. In some examples, this verticalfield of view may also provide sufficient coverage for obstacledetection in front of the robot 900, in addition to front cliffdetection and robot localization. Accordingly, the mounting angle of the3D lidar sensor 902 illustrated in FIG. 9 may be the preferred mountingangle in some applications.

FIG. 10 is a block diagram of a method, in accordance with exampleembodiments. In some examples, method 1000 of FIG. 10 may be carried outby a control system, such as control system 118 of robotic system 100.In further examples, method 1000 may be carried by one or moreprocessors, such as processor(s) 102, executing program instructions,such as program instructions 106, stored in a data storage, such as datastorage 104. Execution of method 1000 may involve any of the robotsand/or robot components illustrated and described with respect to FIGS.1-4, 5A-5B, 6A-6C, 7-9, and/or 10 . Other robotic devices may also beused in the performance of method 1000. In further examples, some or allof the blocks of method 1000 may be performed by a control system remotefrom the robotic device. In yet further examples, different blocks ofmethod 1000 may be performed by different control systems, located onand/or remote from a robotic device.

At block 1010, method 1000 includes receiving sensor data indicative ofan environment of a mobile robotic device from a 3D lidar sensor. The 3Dlidar sensor may be mounted in a carved-out portion of a mast of themobile robotic device. The 3D lidar sensor may be fixed relative to themast such that a vertical field of view of the 3D lidar sensor is angleddownward toward and area in front of the robot. In some examples, avertical axis of the 3D lidar sensor may be tilted forward relative tovertical toward the front of the robot. The sensor data may be pointcloud data.

In some examples, the 3D lidar sensor is angled such that the verticalfield of view of the 3D lidar sensor includes a ground surface directlyin front of the mobile robotic device. For instance, the vertical fieldof view of the 3D lidar sensor may include a portion of or directlyalign with a front bumper of a mobile base of the robotic device.

In some examples, the vertical field of view of the 3D lidar sensor isgreater than ninety degrees, and the 3D lidar sensor is angled such thatan upper bound of the vertical field of view of the 3D lidar sensorextends from the 3D lidar sensor at an angle above a horizontal vectorpointing in front of the mobile robotic device.

In some examples, the vertical field of view of the 3D lidar sensorextends from a first angle that is between 10 and 20 degrees above ahorizontal vector pointing in front of the mobile robotic device to asecond angle that is between 75 and 85 degrees below the horizontalvector.

At block 1020, the method 1000 further includes controlling the mobilerobotic device based on the sensor data. Controlling the mobile roboticdevice may involve using the sensor data from the 3D lidar sensor forany combination of front cliff detection, obstacle detection, and robotlocalization.

More specifically, the sensor data may be indicative of a ground surfacedirectly in front of a mobile base of the mobile robotic device, and themethod 1000 may further involve detecting a cliff in front of the mobilerobotic device. Controlling the mobile robotic device may then involvenavigating the mobile base of the mobile robotic device based on thedetected cliff. For instance, the mobile robotic device may becontrolled to stop or change direction to avoid going over the detectedcliff.

The sensor data from the 3D lidar sensor may also be indicative of oneor more obstacles in front or to the side of the mobile robotic device.In that case, controlling the mobile robotic device based on the sensordata may involve avoiding contact with the one or more obstacles. Forinstance, the mobile robotic device may be controlled to stop or changedirection to avoid hitting a detected obstacle.

The sensor data from the 3D lidar sensor may also be indicative of oneor more surfaces above and behind the mobile robotic device, and themethod 1000 may further involve determining a location of the mobilerobotic device relative to the one or more surfaces. Determining thelocation of the mobile robotic device may involve aligning the sensordata with a voxel grid representation of an environment of the mobilerobotic device. The mobile robotic device may then be controlled basedon the determined location of the mobile robotic device relative to theone or more surfaces.

Examples described herein involve optimizing the position andorientation of a 3D lidar sensor on a mobile robotic device to leveragesensor data from the 3D lidar sensor for front cliff detection, obstacledetection, and robot localization. The sensor data may be used for otherpurposes as well. Furthermore, the position and orientation of the 3Dlidar sensor may be adjusted to optimize the sensor data collected fordifferent applications.

III. Conclusion

The present disclosure is not to be limited in terms of the particularembodiments described in this application, which are intended asillustrations of various aspects. Many modifications and variations canbe made without departing from its spirit and scope, as will be apparentto those skilled in the art. Functionally equivalent methods andapparatuses within the scope of the disclosure, in addition to thoseenumerated herein, will be apparent to those skilled in the art from theforegoing descriptions. Such modifications and variations are intendedto fall within the scope of the appended claims.

The above detailed description describes various features and functionsof the disclosed systems, devices, and methods with reference to theaccompanying figures. In the figures, similar symbols typically identifysimilar components, unless context dictates otherwise. The exampleembodiments described herein and in the figures are not meant to belimiting. Other embodiments can be utilized, and other changes can bemade, without departing from the spirit or scope of the subject matterpresented herein. It will be readily understood that the aspects of thepresent disclosure, as generally described herein, and illustrated inthe figures, can be arranged, substituted, combined, separated, anddesigned in a wide variety of different configurations, all of which areexplicitly contemplated herein.

A block that represents a processing of information may correspond tocircuitry that can be configured to perform the specific logicalfunctions of a herein-described method or technique. Alternatively oradditionally, a block that represents a processing of information maycorrespond to a module, a segment, or a portion of program code(including related data). The program code may include one or moreinstructions executable by a processor for implementing specific logicalfunctions or actions in the method or technique. The program code orrelated data may be stored on any type of computer readable medium suchas a storage device including a disk or hard drive or other storagemedium.

The computer readable medium may also include non-transitory computerreadable media such as computer-readable media that stores data forshort periods of time like register memory, processor cache, and randomaccess memory (RAM). The computer readable media may also includenon-transitory computer readable media that stores program code or datafor longer periods of time, such as secondary or persistent long termstorage, like read only memory (ROM), optical or magnetic disks,compact-disc read only memory (CD-ROM), for example. The computerreadable media may also be any other volatile or non-volatile storagesystems. A computer readable medium may be considered a computerreadable storage medium, for example, or a tangible storage device.

Moreover, a block that represents one or more information transmissionsmay correspond to information transmissions between software or hardwaremodules in the same physical device. However, other informationtransmissions may be between software modules or hardware modules indifferent physical devices.

The particular arrangements shown in the figures should not be viewed aslimiting. It should be understood that other embodiments can includemore or less of each element shown in a given figure. Further, some ofthe illustrated elements can be combined or omitted. Yet further, anexample embodiment can include elements that are not illustrated in thefigures.

While various aspects and embodiments have been disclosed herein, otheraspects and embodiments will be apparent to those skilled in the art.The various aspects and embodiments disclosed herein are for purposes ofillustration and are not intended to be limiting, with the true scopebeing indicated by the following claims.

What is claimed is:
 1. A mobile robotic device, comprising: a mobilebase; a mast fixed relative to the mobile base, wherein the mastincludes a carved-out portion; and a three-dimensional (3D) lidar sensormounted in the carved-out portion of the mast, wherein the shape of thecarved-out portion of the mast and the position and orientation of the3D lidar sensor enables the 3D lidar sensor to capture sensor dataindicative of one or more surfaces above and behind the mobile roboticdevice.
 2. The mobile robotic device of claim 1, wherein the 3D lidarsensor is fixed in a vertical orientation.
 3. The mobile robotic deviceof claim 1, wherein the 3D lidar sensor is tilted forward away from themobile robotic device.
 4. The mobile robotic device of claim 1, whereinthe 3D lidar sensor is tilted backwards towards the mobile roboticdevice.
 5. The mobile robotic device of claim 1, wherein a verticalfield of view of the 3D lidar sensor extends from a first angle that isbetween 10 and 20 degrees above a horizontal vector pointing in front ofthe mobile robotic device to a second angle that is between 75 and 85degrees below the horizontal vector.
 6. The mobile robotic device ofclaim 1, further comprising a control system configured to detect acliff in front of the mobile base of the mobile robotic device based onsensor data from the 3D lidar sensor.
 7. The mobile robotic device ofclaim 1, further comprising a control system configured to detect one ormore obstacles in front or to a side of the mobile robotic device basedon sensor data from the 3D lidar sensor.
 8. The mobile robotic device ofclaim 1, further comprising a control system configured to determine alocation of the mobile robotic device based on the sensor dataindicative of one or more surfaces above and behind the mobile roboticdevice.
 9. The mobile robotic device of claim 8, wherein the controlsystem is configured to determine the location of the mobile roboticdevice by aligning the sensor data with a voxel grid representation ofan environment of the mobile robotic device.
 10. The mobile roboticdevice of claim 1, wherein the 3D lidar sensor is configured to have a360 degree horizontal field of view, and wherein at least 270 degrees ofthe horizontal field of view of the 3D lidar sensor is not obscured bythe mast based on a shape of the carved-out portion of the mast.
 11. Themobile robotic device of claim 1, wherein the mast comprises anoverhanging mounting point for the 3D lidar sensor, wherein the 3D lidarsensor is mounted underneath the overhanging mounting point to fitwithin the carved-out portion of the mast.
 12. The mobile robotic deviceof claim 1, wherein the mast comprises: a backing component to which the3D lidar sensor is mounted; and two symmetric housing components thatattach to either side of the backing component such that the 3D lidarsensor is external to a volume encompassed by the backing component andthe two symmetric housing components.
 13. The mobile robotic device ofclaim 1, wherein the mast is part of a stacked tower positioned at afront end of the mobile robotic device.
 14. The mobile robotic device ofclaim 13, wherein the stacked tower includes a rotational joint of arobotic arm below the mast, wherein the rotational joint is configuredto rotate the robotic arm without rotating the mast.
 15. The mobilerobotic device of claim 1, wherein the mobile base includes a pluralityof one degree of freedom (1DOF) sensors directed toward an area behindthe mobile robotic device.
 16. A method comprising: receiving sensordata indicative of an environment of a mobile robotic device from athree-dimensional (3D) lidar sensor, wherein the 3D lidar sensor ismounted in a carved-out portion of a mast of the mobile robotic device,wherein the shape of the carved-out portion of the mast and the positionand orientation of the 3D lidar sensor enables the 3D lidar sensor tocapture sensor data indicative of one or more surfaces above and behindthe mobile robotic device; and controlling the mobile robotic devicebased on the sensor data.
 17. The method of claim 16, wherein the sensordata is indicative of a ground surface directly in front of a mobilebase of the mobile robotic device, wherein the method further comprises:detecting a cliff in front of the mobile robotic device, whereincontrolling the mobile robotic device comprises navigating the mobilebase of the mobile robotic device based on the detected cliff.
 18. Themethod of claim 16, wherein the sensor data is indicative of one or moreobstacles in front or to a side of the mobile robotic device, whereincontrolling the mobile robotic device comprises avoiding contact withthe one or more obstacles.
 19. The method of claim 16, wherein themethod further comprises: determining a location of the mobile roboticdevice relative to the one or more surfaces above and behind the mobilerobotic device, wherein controlling the mobile robotic device isperformed based on the determined location of the mobile robotic devicerelative to the one or more surfaces.
 20. A mast for a mobile roboticdevice, comprising: a carved-out portion; and a three-dimensional (3D)lidar sensor mounted in the carved-out portion of the mast, wherein theshape of the carved-out portion of the mast and the position andorientation of the 3D lidar sensor enables the 3D lidar sensor tocapture sensor data indicative of one or more surfaces above and behindthe mobile robotic device.